\indent En este trabajo hemos realizado la implementaci\'on de funciones de procesamiento de im\'agenes en dos lenguajes de programaci\'on, \emph{Assembler} y \emph{C}. Adem\'as realizamos un an\'alisis de la performance de las mismas a fin de determinar cual es mas eficiente respecto al tiempo de ejecuci\'on. Las funciones implementadas son: \\

\begin{itemize}
	\item \texttt{recortar}, recorta de cada esquina de la imagen original un bloque cuadrado, la dimensi\'on del bloque es determinada por el par\'ametro \textit{tam}.


	\item \texttt{halftone}, genera una imagen partiendo la original en bloques de 2 x 2 pixeles, a cada pixel del bloque se le asigna un valor de blanco o negro dependiendo de la sumatoria de sus pixeles


	\item \texttt{umbralizar}, para cada pixel de la imagen original se le asigna un valor en la imagen de destino con el siguiente criterio:

	\begin{itemize}
		\item 0 si $p < min$
		\item 255 si $p > max$
		\item $floor(\frac{p}{Q}) * Q$ si no
	\end{itemize}


	\item \texttt{colorizar}, a partir de la imagen original genera una imagen modificando el valor de los pixeles seg\'un las siguientes ecuaciones:


	\begin{center}
	   $max(i,j) = max (I_{in}(i-1,j-1) , I_{in}(i-1,j) , I_{in}(i-1,j+1), I_{in}(i,j-1) , I_{in}(i,j), I_{in}(i,j+1), I_{in}(i+1,j-1) ,I_{in}(i+1,j) I_{in}(i+1,j+1)) $
	\end{center}

Luego

	\begin{itemize}
		\item  $\Phi_R (i,j) = (1+\alpha) \textrm { si } max_R(i.j)\geq max_g(i,j) \wedge  max_R(i.j)\geq max_B(i,j)$
		\item  $\Phi_R (i,j) = (1-\alpha) \textrm { si no }$
		\item  $\Phi_G (i,j) = (1+\alpha) \textrm { si } max_R(i.j) < max_g(i,j) \wedge  max_R(i.j)\geq max_B(i,j)$
		\item  $\Phi_G (i,j) = (1-\alpha) \textrm { si no }$
		\item  $\Phi_B (i,j) = (1+\alpha) \textrm { si } max_R(i.j) < max_g(i,j) \wedge  max_R(i.j)< max_B(i,j)$
		\item  $\Phi_B (i,j) = (1-\alpha) \textrm { si no }$
	\end{itemize}

Y se completa la imagen destino como:

	\begin{itemize}
		\item  $Idest_R(i,j) = min(255, \Phi_R * Isrc_R(i,j))$
		\item  $Idest_G(i,j) = min(255, \Phi_R * Isrc_G(i,j))$
		\item  $Idest_B(i,j) = min(255, \Phi_R * Isrc_B(i,j))$
	\end{itemize}

	\item \texttt{ondas}, genera una imagen, combinando la original con una imagen de ondas, obteni\'endose como resultado una imagen con tonos mas oscuros y mas claros en forma conc\'entrica.


	\item \texttt{rotar}, genera una imagen, igual a la original pero rotada 45 grados. \\ \\

\end{itemize}

\indent En el caso de las implementaciones hechas en \textit{Assembler} hemos usado el modelo de programaci\'on \textit{SIMD}, pues el objectivo de este trabajo pr\'actico es estudiar las ventajas y desventajas de usar ese modelo contra uno \textit{SISD}.\\ \\
\indent En las siguientes secciones se explicar\'a como se implementaron los filtros, se presentar\'an gr\'aficos mostrando los tiempos de ejecuci\'on de cada filtro comparando ambas implementaciones y luego se presentar\'a una conclusi\'on acerca de los resultados obtenidos y el costo de usar un modelo \textit{SIMD} para programar.
